#pragma once
class SortingClass
{
public:
	SortingClass(void);
	~SortingClass(void);

	static void BubbleSort1(int *pArray, int n);
	static void BubbleSort2(int *pArray, int n);

	static int Division(int *pArray, int left, int right);
	static void QuickSort(int *pArray, int left, int right);

	static int FindKthMin(int *pArray, int left, int right, int k);

	static void InsertSort(int *pArray, int n);
	static void ShellSort(int *pArray, int n);

	static void Merge(int r[], int r1[], int s, int m, int t);
	static void MergeSort(int r[], int r1[], int s, int t);

	static void MergePass(int source[], int des[], int n, int h);
	static void MergeSort(int r[],  int n);

	static void SelectSort(int *pArray, int nSize);

	static void HeapAdjust(int a[], int s, int n);
	static void HeapSort(int a[], int n);
};

